package com.canaan.business.service.bill;

import java.util.List;
import com.canaan.business.domain.bill.TrayDetailRecord;

/**
 * 托盘明细纪录Service接口
 *
 * @author canaan
 * @date 2025-04-03
 */
public interface ITrayDetailRecordService {
    /**
     * 查询托盘明细纪录
     *
     * @param id 托盘明细纪录主键
     * @return 托盘明细纪录
     */
    TrayDetailRecord selectTrayDetailRecordById(Long id);

    /**
     * 查询托盘明细纪录列表
     *
     * @param trayDetailRecord 托盘明细纪录
     * @return 托盘明细纪录集合
     */
    List<TrayDetailRecord> selectTrayDetailRecordList(TrayDetailRecord trayDetailRecord);

    /**
     * 新增托盘明细纪录
     *
     * @param trayDetailRecord 托盘明细纪录
     * @return 结果
     */
    int insertTrayDetailRecord(TrayDetailRecord trayDetailRecord);

    /**
     * 批量新增托盘明细纪录
     *
     * @param trayDetailRecordList 托盘明细纪录列表
     * @return 结果
     */
    int batchInsertTrayDetailRecord(List<TrayDetailRecord> trayDetailRecordList);

    /**
     * 修改托盘明细纪录
     *
     * @param trayDetailRecord 托盘明细纪录
     * @return 结果
     */
    int updateTrayDetailRecord(TrayDetailRecord trayDetailRecord);

    /**
     * 批量修改托盘明细纪录
     *
     * @param trayDetailRecordList 托盘明细纪录列表
     * @return 结果
     */
    int batchUpdateTrayDetailRecord(List<TrayDetailRecord> trayDetailRecordList);

    /**
     * 批量删除托盘明细纪录
     *
     * @param ids 需要删除的托盘明细纪录主键集合
     * @return 结果
     */
    int deleteTrayDetailRecordByIds(Long[] ids);

    /**
     * 删除托盘明细纪录信息
     *
     * @param id 托盘明细纪录主键
     * @return 结果
     */
    int deleteTrayDetailRecordById(Long id);

    TrayDetailRecord selectTrayDetailRecordByNo(String no);
}
